/**
 * Copyright (c) 2011 Tomi Paananen.
 *
 * Part of Quick Gestures engine library.
 */

#ifndef FEATUREEXTRACTOR_H
#define FEATUREEXTRACTOR_H

// Qt includes
#include <QObject>

// qgengine includes
#include "qgenginepriv.h"

// Forward declarations
class Gesture;
class GestureProcessor;


class QGLIB_EXPORT FeatureExtractor : public QObject
{
    Q_OBJECT

public:
    explicit FeatureExtractor(QObject *parent = 0);
    virtual ~FeatureExtractor();

public:
    void setGesturePointCount(int count);
    void setGestureScaleFactor(quint32 scaleFactor);

public slots:
    int processGesture(Gesture *gesture);
    int processGestureSet(QList<Gesture*> &gestureSet);

signals:
    void gestureProcessed(Gesture *gesture);

protected: // Data
    GestureProcessor *m_processor; // Owned
    int m_gesturePointCount;
    quint32 m_gestureScaleFactor;
};


#endif // FEATUREEXTRACTOR_H

// End of file.
